--- title: Lecture 02 Template layout: minimal permalink: /lectures/lec02-template.html parent: Lectures nav_exclude: true ---
02 - History of Operating SystemsOutlineTimelineEarly Days (Before OSes)Transistors & Batch SystemsAnnouncementsReading: MOS 1.2Discord is up: https://discord.gg/SNfKFK8bZQpa1 is up on gradescope.You need to add a role to not be kicked.Email with "CS 492" somewhere in the subject line.I'm much more likely to see it if you do.1940 - 1955: Early Days1965 - 1980: ICs & Multiprogramming1955 - 1965: Transistors & Batch Systems1980 - Present: PCs1)2)3)4)5)Other Operating Systems1942194319451953195419561957195919601961196419661969196819811982197819831984198519871991199219931994199519961974197319711958 Colossus Mark 1 - First programmable, electronic, digital - Tommy Flowers @ Bletchley Park - WWII code-breaking Manchester Transistor Computer - First transistor computer - Richard Grimsdale + D.C. Webb - 92 point-contact transistors GM-NAA I/O System - First Operating System for IBM 704 - Robert L. Patrick (General Motors) & Owen Mock (NA Aviation) - Batch processing: automatically execute a new program after the previous program finishes. ENIAC - First programmable, electronic, digital, general-purpose (Turing-complete) - John Mauchly + J. Presper Eckert - Compute ballistics trajectories - Original Programmers: Betty Holberton, Kay McNulty, Marlyn Wescoff, Ruch Lichterman, Betty Jean Jennings, Fran Bilas19441941 Atanasoff-Berry computer (ABC) - First electronic, digital - John Atanasoff + Clifford Berry @ Iowa State University - 300+ vacuum tubes Harvard Mark I - General-purpose electromechanical - Howard Aiken - Used by von John von Neumann during the Manhattan Project Z3 - First programmable, digital - Konrad Zuse - 2600 electromechanical relays - 22-bit words, 5-10 HzMarlyn Wescoff (left), Ruth LictermanENIAC Programmers UMES - Bernard Galler @ UMich - Adapted for students BESYS (Bell Labs) SHARE Operating System IBM 1401 & IBM 7090 released - Popular Transistor Mainframes IBM System/360 - Both commercial and scientific applications - Family of (mostly) software-compatible mainframes - First major line to use hybrid ICs - Released with DOS/360 Multics (began 1964) - Designed by MIT, Bell Labs, GE - Support 100s of timesharing users (Everyone logs into one big machine) - Seminal Ideas: - Hierarchical file system, Shell - Segments, Paging, Virtual Memory - Dynamic Linking - Security (Ring-based Access Control) - Commercial flop: - 5 years to ship - PL/I language (compiler late) - Very ambitious/complex UNIX manual published (began 1969) - Ken Thompson, Dennis Ritchie @ Bell Labs (Multics developers) - Originally proprietary - Initially designed as single-user version of Multics - Written in assembly, later C - Inherited shell and hierarchical file system from Multics - "UNIX philosophy" modular design - Very popular: - Cheap to access source - Ran on cheap hardware - Easily portable OS/360 - First OS for many computers - Compatibility -> commercial success - Large, complex, many problems - Popularized multiprogramming - Introduced spooling IBSYS (IBM) MIT CTSS - Compatible Time-Sharing System (concurrency) - First timesharing OSJack Kilby @ Texas Instrumentsinvents the integrated circuit (IC) IBM 704 - First mass-produced mainframe with floating point hardware - John Backus & Gene Amdahl - Fun Facts: - FORTRAN & LISP written for it - Mean time to failure 8 hoursIBM 704 at NACA, 1957Batch SystemsMOS Figure 1-3ICs & MultiprogrammingMultiprogramming meantto minimize idle CPUtime due to I/OoperationsMain memory partitions allow CPU to switch betweenjobs while a another waits for I/O operations.Requires hardware to prevent read across partitions.Large Scale Integration (LSI) fits 1000xtransistors in a square cm.Computers get small enough and cheap enoughthat it's practical for individuals to ownmicrocomputers, later called personal computers.Spooling (Simultaneous PeripheralOperation On Line) automaticallyqueued jobs to be loaded insteadof waiting until completion.Personal Computers Intel 8080 - 8080 first general-purpose 8-bit CPU - Used in first microcpu with a disk Xerox Alto (Xerox PARC) - GUI, mouse, Ethernet, WYSIWYG editor oN Line System (NLS) - Doug Engelbert @ SRI Intl. - "The Mother of All Demos" - Windows, hypertext, graphics, mouse, word processing, VCS, collaborative real-time editing CP/M - CP/M disk-based OS, written for a 8-inch 64kB memory floppy disk - Gary Kildall -> Digital Research - Rewritten 1977 for more CPUs - Dominated microcomputing until 1982 - Introduced the BIOS MS-DOS (86-DOS) - Released for IBM PC - A clone of CP/M by Tim Paterson for Intel 8086 - Acquired by Microsoft for ~$75k - Supplants CP/M after a year more commands, FAT file system Berkeley Software Distribution (1BSD) - Bill Joy @ UC Berkeley CSRG - Originally added virtual memory to AT&T Unix - Permissive licensing made it very popular (FOSS) - Later versions would introduce networking stack - vi text editor in 2BSD (1979) Apple Lisa (Lisa OS) - First mass-market PC operable via GUI - Inspired by Xerox PARC GUI UNIX System V (AT&T) Apple Macintosh 128K (macOS) - First successful mass-market all-in-one GUI PC - Built-in screen and mouse Windows 1.0 (not an OS) - Microsoft's first GUI for MS-DOS - Calculator, Clock, Notepad, Control Panel, Paint, etc. MINIX - Andrew S. Tanenbaum @ VU Amsterdam - Educational UNIX clone - Microkernel architecture Linux kernel - Linus Torvalds for x86 PCs - Free and Open-Source Software (FOSS) - Immediately saw variantsIntel 8080MS-DOS promptMacintosh 128K FreeBSD Solaris (from SunOS) OpenBSD Red Hat OpenSUSE Windows CE NetBSD Slackware Debian VxWorks QNXOS landscape gets dominated by Microsoft, Apple, andLinux...Mobile Operating SystemsReal-Time Operating SystemsMiscellaneousOperating systems evolve alongside hardwareadvances and UI paradigms.People like free software.Examples:QNXZephyrfreeRTOSNuttXToaruOSTempleOSSerenityOSTockChibiOS/RTVxWorksThreadXApplications with time-critical constraints - can be soft or hard real-time - fast, deterministic response timesDesigns can be: - Event-driven (preemptive) - Time-sharing (round-robin)Often run in embedded systems1997 - Symbian1999 - Blackberry OS2007 - iOS2008 - Android2009 - Windows Phone2019 - HarmonyOS2021 - FuchsiaMobile ComputingOther Operating SystemsTakeaways1)2)